/**
 * @projectName gs_online
 * @package com.answer.wx.gateway.service
 * @className com.answer.wx.gateway.service.MessageService
 */
package com.answer.wx.gateway.service;

import com.answer.wx.common.response.ResponseListEntity;
import com.answer.wx.dao.model.*;
import com.answer.wx.gateway.bean.MessageBean;
import com.answer.wx.gateway.bean.NewMessageBean;
import com.answer.wx.gateway.bean.ShopBean;

import java.util.List;

/**
 * MessageService
 * @description message接口
 * @author answer_wx
 * @date 2022/8/8 12:43
 * @version 1.0
 */
public interface MessageService {
    MessageBean getMessageDetailById(Integer messageId);

    List<MessageBean> getAllMessage(Integer userId);

    List<MessageBean> getAllMessageDetail(Integer pageNumber);

    List<MessageImage> findList(MessageImage image);

    List<Message> getLost();

    List<MessageBean> getImage(List<MessageBean> allMessage);

    NewMessage getLastNewMessage(Integer userId);

    MessageBean addMessage(MessageBean message);

    List<MessageBean> getMessageByCategoryAndKeyword(Integer categoryId, String keyword);

    ResponseListEntity<MessageBean> getMessageByCategoryId(Integer categoryId, Integer pageNumber);

    List<Attend> getAllAttendMessageByUserId(Integer userId);

    ResponseListEntity<MessageBean> getAttendMessageByUserId(Integer userId, Integer pageNumber);

    void updateMessageByUserId(Integer userId, Integer messageId, String message);

    ResponseListEntity<MessageImage> deleteMessage(Integer userId, Integer messageId);

    void addNewMessageByAdmin(Integer userId, Integer messageId, String newMessage);

    Integer addShareCount(Integer messageId);

    List<MessageBean> getMessageByKeyword(String keyword, Integer pageNumber);

    ShopBean getShopMessageById(Integer id);

    ResponseListEntity<MessageBean> getMessageDetailByUserId(Integer userId, Integer pageNumber);

    ResponseListEntity<MessageBean> getAllCollectionMessageByUserId( Integer userId, Integer pageNumber);

    ResponseListEntity<NewMessageBean> getAllNewMessage(Integer userId, Integer pageNumber);
}